Enormous progress has been made, in the past 50 years, in reliable and robust storage of data in electronic mass-storage devices. Information theory, developed in the 1940's, led to development of mathematical techniques for error detection and error correction, providing methods for inserting additional information within transmitted or stored information that allows for certain classes of errors in the transmitted or stored information to be detected and corrected. In addition, progress in integrated circuits, mass-storage devices, and basic computer science and electronics has led to the development of redundancy-based, fault-tolerant mass-storage systems, including redundant arrays of independent disks (“RAIDs”). In RAID systems, data is stored redundantly. In many RAID systems, the redundant information is generated by error-correcting-code methods. When one or more disks, depending on the type of RAID system, fail, contents of the one or more failed disks can be regenerated from the redundant data stored within the RAID system.
Additional levels of error detection and error correction are implemented within complex data-storage systems, such as RAIDs. While the many layers of overlapping error-detection and error-correction methods serve to create highly robust and fault-tolerant data-storage systems, the many layers of error detection and error-correction within redundancy-based data-storage systems are also associated with computational and data-storage-capacity costs. For these reasons, designers, manufacturers, and, ultimately, users of redundancy-based, fault-tolerant data-storage systems continue to seek more efficient and economical techniques for achieving high levels of fault tolerance in data-storage systems with minimal computational overheads and minimally decreased data-storage capacities.